package models;

import org.codehaus.groovy.runtime.typehandling.BigDecimalMath;
import play.db.jpa.GenericModel;

import javax.persistence.*;
import java.util.*;
import java.math.*;
/**
 * Created with IntelliJ IDEA.
 * User: Daniel
 * Date: 25/06/12
 * Time: 03:48 PM
 * To change this template use File | Settings | File Templates.
 */
@Entity(name = "hidcomponente")
public class Hidcomponente extends GenericModel {

    @Id
    @SequenceGenerator(name="hidcomponente_seq", sequenceName="hidcomponente_compid_seq", allocationSize=0)
    @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="hidcomponente_seq")
    private int compid;

    @ManyToOne
    @JoinColumn(name = "tipcompid")
    private Hidtipocomponente hidtipocomponente;

    @ManyToOne
    @JoinColumn(name = "secid")
    private Hidsector hidsector;

    @ManyToOne
    @JoinColumn(name = "modsimid")
    private Hidmodelosimulacion hidmodelosimulacion;

    private String compnom;

    @OneToMany(mappedBy = "hidcomponente")
    private List<Hidpuntomonitoreo> hidpuntomonitoreos;

    @OneToMany(mappedBy = "hidcomponente")
    private List<Hidubicacion> hidubicacions;

    @OneToMany(mappedBy = "hidcomponente")
    private List<Hidnodo> hidnodos;

    @ManyToMany
    @JoinTable(
            name="Hidmetodocomponente",
            joinColumns = {@JoinColumn(name = "compid",referencedColumnName = "compid")},
            inverseJoinColumns = {@JoinColumn(name = "metid",referencedColumnName = "metid")}
    )
    private List<Hidmetodo> hidmetodos;

    @OneToMany(mappedBy = "hidcomponente")
    private List<Hidarista> hidaristas;

    private BigDecimal complati;
    private BigDecimal complong;

    public Hidcomponente() {
    }


    public Hidcomponente(int compid) {
        this.compid = compid;
    }

    public Hidcomponente(int compid, Hidtipocomponente hidtipocomponente, Hidsector hidsector, Hidmodelosimulacion hidmodelosimulacion, String compnom, List<Hidpuntomonitoreo> hidpuntomonitoreos, List<Hidubicacion> hidubicacions, List<Hidnodo> hidnodos, List<Hidmetodo> hidmetodos, List<Hidarista> hidaristas) {
        this.compid = compid;
        this.hidtipocomponente = hidtipocomponente;
        this.hidsector = hidsector;
        this.hidmodelosimulacion = hidmodelosimulacion;
        this.compnom = compnom;
        this.hidpuntomonitoreos = hidpuntomonitoreos;
        this.hidubicacions = hidubicacions;
        this.hidnodos = hidnodos;
        this.hidmetodos = hidmetodos;
        this.hidaristas = hidaristas;
    }

    public int getCompid() {
        return compid;
    }

    public void setCompid(int compid) {
        this.compid = compid;
    }

    public Hidtipocomponente getHidtipocomponente() {
        return hidtipocomponente;
    }

    public void setHidtipocomponente(Hidtipocomponente hidtipocomponente) {
        this.hidtipocomponente = hidtipocomponente;
    }

    public Hidsector getHidsector() {
        return hidsector;
    }

    public void setHidsector(Hidsector hidsector) {
        this.hidsector = hidsector;
    }

    public Hidmodelosimulacion getHidmodelosimulacion() {
        return hidmodelosimulacion;
    }

    public void setHidmodelosimulacion(Hidmodelosimulacion hidmodelosimulacion) {
        this.hidmodelosimulacion = hidmodelosimulacion;
    }

    public String getCompnom() {
        return compnom;
    }

    public void setCompnom(String compnom) {
        this.compnom = compnom;
    }

    public List<Hidpuntomonitoreo> getHidpuntomonitoreos() {
        return hidpuntomonitoreos;
    }

    public void setHidpuntomonitoreos(List<Hidpuntomonitoreo> hidpuntomonitoreos) {
        this.hidpuntomonitoreos = hidpuntomonitoreos;
    }

    public List<Hidubicacion> getHidubicacions() {
        return hidubicacions;
    }

    public void setHidubicacions(List<Hidubicacion> hidubicacions) {
        this.hidubicacions = hidubicacions;
    }

    public List<Hidnodo> getHidnodos() {
        return hidnodos;
    }

    public void setHidnodos(List<Hidnodo> hidnodos) {
        this.hidnodos = hidnodos;
    }

    public List<Hidmetodo> getHidmetodos() {
        return hidmetodos;
    }

    public void setHidmetodos(List<Hidmetodo> hidmetodos) {
        this.hidmetodos = hidmetodos;
    }

    public List<Hidarista> getHidaristas() {
        return hidaristas;
    }

    public void setHidaristas(List<Hidarista> hidaristas) {
        this.hidaristas = hidaristas;
    }

    public BigDecimal getComplati() {
        return complati;
    }

    public void setComplati(BigDecimal complati) {
        this.complati = complati;
    }

    public BigDecimal getComplong() {
        return complong;
    }

    public void setComplong(BigDecimal complong) {
        this.complong = complong;
    }
}
